<TagAttribute("flag","flag","????","????",1,96)>
Public Class FLAG_TAG
Inherits HaloTag
Public Const Extension as String = "flag"
Public Const FourCC as String = "flag"
Public Const ParentFourCC as String = "????"
Public Const GrandParentFourCC as String = "????"
Public Const [Version] as Short = 1
Public Const HeaderLength as Integer = 96

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 20)>
Public flags as Integer

''' <summary>
''' 
''' </summary>
<TagField("trailing edge shape", 1, 17)>
Public trailing_edge_shape as Short

''' <summary>
''' zero places the shape exactly on the trailing edge, positive numbers push it off the edge
''' </summary>
<TagField("trailing edge shape offset:vertices", 1, 23)>
Public trailing_edge_shape_offset as Short

''' <summary>
''' 
''' </summary>
<TagField("attached edge shape", 1, 17)>
Public attached_edge_shape as Short

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding as Byte()

''' <summary>
''' flag size from attached to trailing edge
''' </summary>
<TagField("width:vertices", 1, 23)>
Public width as Short

''' <summary>
''' flag size along the direction of attachment (should be odd)
''' </summary>
<TagField("height:vertices", 1, 23)>
Public height as Short

''' <summary>
''' width of the cell between each pair of vertices
''' </summary>
<TagField("cell width:world units", 1, 0)>
Public cell_width as Single

''' <summary>
''' height of the cell between each pair of vertices
''' </summary>
<TagField("cell height:world units", 1, 0)>
Public cell_height as Single

''' <summary>
''' 
''' </summary>
<TagField("red flag shader^", 16, 10)>
Public red_flag_shader as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("physics", 16, 10)>
Public physics as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("wind noise:world units per second^2", 1, 0)>
Public wind_noise as Single

''' <summary>
''' 
''' </summary>
<TagField("", 8, -1)>
Public padding_1 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("blue flag shader^", 16, 10)>
Public blue_flag_shader as New TAG_REFERENCE

''' <summary>
''' flag_attachment_point_block
''' </summary>
<TagField("attachment points#attachment points determine where the flag is attached", 52, 11)>
Public attachment_points as List(Of ATTACHMENT_POINTS_BLOCK)
Public Class ATTACHMENT_POINTS_BLOCK

''' <summary>
''' flag vertices between this attachment point and the next
''' </summary>
<TagField("height_to_next_attachment:vertices", 1, 23)>
Public height_to_next_attachment as Short

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_1 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("marker name^", 32, 8)>
Public marker_name as String

End Class

End Class
